Schauen wir uns die folgende Tabelle „Products“ („Produkte“) an:
ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
---|---|---|---|---|---|
1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18.00 |
2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19.00 |
3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10.00 |
4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22.00 |
5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
Gehen Sie davon aus, dass die Spalte „UnitsOnOrder“ optional ist und den Wert NULL enthalten kann.
Betrachten Sie die folgende Anweisung SELECT:
SELECT ProductName, UnitPrice * (UnitsInStock + UnitsOnOrder)
FROM Products
Wenn im obigen Beispiel einer der „UnitsOnOrder“-Werte gleich NULL ist, ist das Ergebnis NULL.
Mit der Funktion MySQL IFNULL() können Sie einen alternativen Wert zurückgeben, wenn der Ausdruck gleich NULL ist:
SELECT ProductName, UnitPrice * (UnitsInStock + IFNULL(UnitsOnOrder, 0))
FROM Products
oder wir können die Funktion COALESCE() verwenden, zum Beispiel:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
Mit der Funktion SQL Server ISNULL() können Sie einen alternativen Wert zurückgeben, wenn der Ausdruck den Wert NULL hat:
SELECT ProductName, UnitPrice * (UnitsInStock + ISNULL(UnitsOnOrder, 0))
FROM Products
oder wir können die Funktion COALESCE() verwenden, zum Beispiel:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products
Die MS Access-Funktion IsNull() gibt TRUE (-1) zurück, wenn der Ausdruck null ist, andernfalls FALSE (0):
SELECT ProductName, UnitPrice * (UnitsInStock + IIF(IsNull(UnitsOnOrder), 0, UnitsOnOrder))
FROM Products
Die Funktion Oracle NVL() erzielt das gleiche Ergebnis:
SELECT ProductName, UnitPrice * (UnitsInStock + NVL(UnitsOnOrder, 0))
FROM Products
oder wir können die Funktion COALESCE() verwenden, zum Beispiel:
SELECT ProductName, UnitPrice * (UnitsInStock + COALESCE(UnitsOnOrder, 0))
FROM Products